﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QLTuyenXe.DAL;
using System.Collections;
using System.Data;
using QLTuyenXe.DAO;

namespace QLTuyenXe.BLL
{
    class BQuanLyXe
    {
        MyConnectUnit myConnU = new MyConnectUnit();

        public bool kt(string condition)
        {
            bool kt = false;
            ArrayList dieuhanhs = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("QUAN_LY_XE", "*", "bienso='" + condition + "'");
            if (tb.Rows.Count > 0)
            {
                kt = false;
            }
            else
            {
                kt = true;
            }
            return kt;
        }

        public ArrayList Select(String columns, String condition, String order)
        {
            ArrayList qlxe = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("QUAN_LY_XE", columns, condition, order);
            if (tb != null)
                foreach (DataRow r in tb.Rows)
                {
                    QUANLYXE qlx = new QUANLYXE();
                    qlx.Maxe = (r["maxe"].ToString());
                    qlx.Tenxe = (r["tenxe"].ToString());
                    qlx.Bienso = (r["bienso"].ToString());
                    qlx.Soghe = (r["soghe"].ToString());
                    qlx.Ngaymua = r["ngaymua"].ToString();
                    qlx.Lichsusuachua = (r["lichsusuachua"].ToString());
                    qlx.Sokmdachay = (r["sokmdachay"].ToString());
                    qlxe.Add(qlx);
                }
            return qlxe;
        }

        public ArrayList Select(String columns, String condition)
        {
            return this.Select(columns, condition, null);
        }

        public ArrayList Select(String columns)
        {
            return this.Select(columns, null);
        }

        public ArrayList Select()
        {
            return this.Select("*");
        }

        public DataTable KTXoa(string dk)
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("QUAN_LY_XE", "DIEU_HANH", "LAI_XE", "DOANH_THU", "GIA_THUE", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "QUAN_LY_XE.maxe", "LAI_XE.maxe", "QUAN_LY_XE.maxe", "DOANH_THU.maxe", "QUAN_LY_XE.maxe", "GIA_THUE.maxe", dk);
            return tb;
        }

        public DataTable KTDH(string dk)
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("QUAN_LY_XE", "DIEU_HANH", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", dk);
            return tb;
        }

        public DataTable KTDT(string dk)
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("QUAN_LY_XE", "DOANH_THU", "QUAN_LY_XE.maxe", "DOANH_THU.maxe", dk);
            return tb;
        }

        public DataTable KTGT(string dk)
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("QUAN_LY_XE", "GIA_THUE", "QUAN_LY_XE.maxe", "GIA_THUE.maxe", dk);
            return tb;
        }

        public DataTable KTLX(string dk)
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("QUAN_LY_XE", "LAI_XE", "QUAN_LY_XE.maxe", "LAI_XE.maxe", dk);
            return tb;
        }

        public String getOrder()
        {
            string strID = myConnU.GetTopDataCell("QUAN_LY_XE", "maxe");
            string strID1;
            string strID2;
            strID1 = strID.Substring(0, 2);
            strID2 = strID.Substring(2, 5);
            int autoNum = Convert.ToInt32(strID2) + 1;

            if (autoNum < 10)
                return strID1 + "0000" + autoNum;

            else if (autoNum >= 10 && autoNum < 100)
                return strID1 + "000" + autoNum;

            else if (autoNum >= 100 && autoNum < 1000)
                return strID1 + "00" + autoNum;
            else if (autoNum >= 1000 && autoNum < 10000)
                return strID1 + "0" + autoNum;
            else if (autoNum >= 10000 && autoNum < 100000)
                return strID1 + "" + autoNum;

            else
                return "";
        }

        public int Insert(QUANLYXE qlxe)
        {
            ColumnData maxe = new ColumnData("maxe", 1, qlxe.Maxe.ToString());
            ColumnData tenxe = new ColumnData("tenxe", 1, qlxe.Tenxe.ToString());
            ColumnData bienso = new ColumnData("bienso", 1, qlxe.Bienso.ToString());
            ColumnData soghe = new ColumnData("soghe", 1, qlxe.Soghe.ToString());
            ColumnData ngaymua = new ColumnData("ngaymua", 3, qlxe.Ngaymua.ToString());
            ColumnData lichsusuachua = new ColumnData("lichsusuachua", 1, qlxe.Lichsusuachua.ToString());
            ColumnData sokmdachay = new ColumnData("sokmdachay", 1, qlxe.Sokmdachay.ToString());
            ArrayList columnData = new ArrayList();
            columnData.Add(maxe);
            columnData.Add(tenxe);
            columnData.Add(bienso);
            columnData.Add(soghe);
            columnData.Add(ngaymua);
            columnData.Add(lichsusuachua);
            columnData.Add(sokmdachay);
            return myConnU.Insert("QUAN_LY_XE", columnData);
        }

        public int Insert(ArrayList qlxe)
        {
            int count = 0;
            foreach (QUANLYXE qlx in qlxe)
            {
                count += this.Insert(qlx);
            }
            return count;
        }

        public int Update(QUANLYXE qlxe, String condition)
        {
            //ColumnData maxe = new ColumnData("maxe", 2, qlxe.Maxe.ToString());
            ColumnData tenxe = new ColumnData("tenxe", 1, qlxe.Tenxe.ToString());
            ColumnData bienso = new ColumnData("bienso", 1, qlxe.Bienso.ToString());
            ColumnData soghe = new ColumnData("soghe", 1, qlxe.Soghe.ToString());
            ColumnData ngaymua = new ColumnData("ngaymua", 3, qlxe.Ngaymua.ToString());
            ColumnData lichsusuachua = new ColumnData("lichsusuachua", 1, qlxe.Lichsusuachua.ToString());
            ColumnData sokmdachay = new ColumnData("sokmdachay", 1, qlxe.Sokmdachay.ToString());
            ArrayList columnDatas = new ArrayList();
            //columnDatas.Add(maxe);
            columnDatas.Add(tenxe);
            columnDatas.Add(bienso);
            columnDatas.Add(soghe);
            columnDatas.Add(ngaymua);
            columnDatas.Add(lichsusuachua);
            columnDatas.Add(sokmdachay);
            return myConnU.Update("QUAN_LY_XE", columnDatas, condition);
        }

        public int Update(ArrayList qlxe, String condition)
        {
            int count = 0;
            foreach (QUANLYXE qlx in qlxe)
            {
                count += this.Update(qlx, condition);
            }
            return count;
        }

        public int Delete(String condition)
        {
            return myConnU.Delete("QUAN_LY_XE", condition);
        }

        public int GetMaxId()
        {
            return myConnU.GetMaxId("QUAN_LY_XE", "maxe");
        }
    }
}
